#pragma once
#pragma warning( disable: 4251 ) 

#ifdef WGLENGINE_DLL
#define WGLENGINE_EXPORT __declspec(dllexport)
#else
#define WGLENGINE_EXPORT __declspec(dllimport)
#endif

#include "Texture.h"

#include <IL/il.h>

class WGLENGINE_EXPORT TextureCubeMap : public Texture
{
protected:
	std::vector<std::string> paths;
	std::vector<GLuint> faces;

public:
	TextureCubeMap() : Texture()
	{

	}

	TextureCubeMap(std::vector<std::string> fullFilePaths, std::vector<GLuint> cubemapFaces) : Texture()
	{
		paths = fullFilePaths;
		faces = cubemapFaces;
	}
	
	virtual bool LoadImage() override;
	
	
	virtual void Bind() override
	{
		glBindTexture(GL_TEXTURE_CUBE_MAP, textureID); // Binding of texture name 
	}

	virtual void Unbind() override
	{
		glBindTexture(GL_TEXTURE_CUBE_MAP, 0); // Binding of texture name 
	}
};